查看原文
其他

【全面了解】Filecoin的惩罚机制,有效提高Fil收益

惩罚机制设立的目的,在于督促矿工能稳定的存储提交的数据,并做好相应的维护工作。矿工如果出现数据损坏、丢失或者故意提前终止扇区的时候均会触发惩罚机制,从而付出巨大的代价。

针对数据的损坏与丢失,经济模型规定了三种容错方式:
  • 手动声明扇区错误:罚没 3.51 倍 当日获得 FIL 数量

  • 由共识检查出来的错误扇区:罚没 3.51 倍 当日获得 FIL 数量

  • 矿工主动跳过一些扇区的检查:罚没 3.51 倍 当日获得 FIL 数量

这些惩罚费用都是从矿工锁仓的金额中扣除,转到专门的销毁账号 f099,且不能恢复。

针对矿工故意提前终止扇区(通俗地说就是拍拍屁股走人——老子不干了!),系统将判定为恶意破坏网络,将会从矿工钱包里扣除大量 FIL。具体罚没数量视情况的严重程度而定,一般是该矿工工作 
20天 到 90天 所获得的代币数量的总和(也就是说之前的20天到三个月都白干了)。

这里顺便补充一点,抵押机制,那么是不是只要存储了数据,这批抵押币需要一直扣押在那里永远无法提出呢?其实不然,经济模型规定每个存储数据的扇区都有自己的生命周期,为 180天 至 540天 不等;到期后即便里面还存有数据,只要矿工不恶意关机,那么前期抵押在这个扇区里的抵押币就会一次性退回给矿工,而不会触发惩罚机制。

在 Filecoin 主网刚上线的那几天,有很多传言说一大批矿工关机抗议,如果是懂得经济模型的人,一眼就能看出这是谣言,原因就是一旦关机,就将触发惩罚机制,从而面临巨额的惩罚,得不偿失!



————————————————

Filecoin的使命是为人类信息打造分散的、高效且强大的基础设施,拥有庞大的商业应用和落地预期。为了保证矿工能够提供高质量的数据存储服务,Filecoin通过惩罚机制来制约矿工的怠工行为。


虽然Filecoin官方对Filecoin经济模型中的相关参数进行了调整,但在惩罚机制的设置上依然非常严厉。


1)矿工发现扇区故障并主动报告,将被扣除该扇区预期2.14天收益;


2)矿工没有发现而在WindowPoSt期间被系统发现扇区故障,则将被处罚该故障扇区3.5天收益作为扇区错误检测费;


3)如果在扇区到期之前终止扇区,则前期该扇区获得的部分区块奖励将被一并扣除(≤140天,没收一半服务时间的收益;>140天,将没收70天的收益)。


Filecoin的WindowPoSt是什么?WindowPoSt其主要目的是,检验矿工节点是否按要求持续地存储着相应的数据。


 WindowPoSt具体实现方式为:矿工节点需接受Filecoin系统的随机性挑战,以证明自己的确存储了相关数据。


WindowPoSt是连续的过程。矿工每隔一个时间周期都需要接受挑战,并在一定的时间范围内完成证明。一旦未按要求完成或超时,矿工节点将丢失部分算力,同时抵押的FIL也将视严重程度被部分或者全部罚没。


WindowPoSt的周期为一天,分为48个窗口(Window),每个窗口30分钟。矿工的扇区越多、体量越大,受挑战的次数和难度也越高。矿工必须在规定时间内完成数据验证挑战,任何一次不成功,都将被惩罚并损失算力。


矿工未能在规定时间内完成WindowPoSt的原因有很多,比如网络传输问题、磁盘损坏和软件Bug等等。尤其是磁盘损坏的问题,即使损坏率很小,因为体量的原因依然会产生一定数量硬件设备的损坏,这是不可避免的。如何应对上述这些问题,是对矿工运维能力的极大挑战。


为了保证算力不被惩罚,工程师们需要付出相当大的努力。这其中包括监控系统,实时监测网络传输的稳定性和硬件设备的情况;冗余备份,应对磁盘故障问题,保证数据不会丢失;软件算法优化,缩短WindowPoSt时间。


通过以上这些,就能保证算力不被惩罚,收益不受损失吗?当然没有这么简单,即使阿里、腾讯、亚马逊等世界头部互联网企业也不敢保证100%的系统稳定性。为此,需要运维构建了一系列的风控机制,针对各种各样的突发情况制定预案。即使发生了极小概率的突发事件,也能够将损失降低至最低。


未来,Filecoin主网上线,一家机构的运维能力才是最为重要的。


————————————————

我们都知道Filecoin挖矿是有惩罚机制的,很多矿工认为Filecoin是硬盘的简单堆积,然而事实并非如此,软件、硬件、矿场、网络等都是影响Filecoin挖矿的重要因素,今天我们简单谈论——Filecoin的惩罚机制是什么?

大部分人只看到了挖矿的收益,以为只要买了高配置的矿机放那里挖,然后回家坐等收币就行了,而没有考虑到挖矿过程所遭遇的惩罚。结果就是可能你辛辛苦苦挖好几个月,结果因为一次 (惩罚),就血本无归,落得一个“辛辛苦苦几十年,一罚回到解放前”的结局。

惩罚的触发条件

Filecoin Specs(协议规范) 规定了哪些行为是会受到惩罚的:

共识惩罚:在相同的高度提交两个以及以上的区块,以提高自己的 Weight(出块权重)。


惩罚力度:当前矿工的所有 pledge collateral (抵押币)全部扣除,storage power(存储算力) 清零,并且均不可恢复, 即使作弊者重新抵押,该矿工也无法再产生新的区块。

合约惩罚:不遵守合约,在存储交易到期之前,私自删除客户数据

这种违约惩罚相对来说不算严重,只是扣除你违约部分的订单金额。比如说你接了一个订单,帮客户存储 10 GB的数据100天, 总价为 100FIL,假设你把这 10GB 的数据密封成 10 个sector,但是你在第 99 天的时候不小心把其中 9 个 sector 删除了, 那此时你就需要缴纳 (9/10)*100 = 90 FIL 的罚金。这里协议并没有说明订单的那 100FIL 是否归你所有, 但是有特别指出了这个罚金是从你的抵押币中扣除的,由此可见,订单的钱你应该也是拿不到的,这叫赔了夫人又折兵。


存储惩罚:未能按时提交 PoSt(时空证明),或者提交非法的 PoST(作弊)

这两种存储惩罚,由于性质不一样,所以惩罚力度也有很大的差别,对于那些逾期提交 PoST 的矿工,只需加纳一定数量的罚金,具体数量通过调用 ComputeLateFee(minerPower, numLate) 函数计算得出,当前矿工的存储算力并不会受到影响。

但是对于后一种通过 (生成攻击)生成 PoST 的矿工,处罚就是致命性的, 除了扣除所有的抵押代币,存储算力清零之外,处于这种状态的矿工,即使被选取为出块矿工,它产生的任何区块都将无效。


罚金的处理


(这是早前的建议,更多信息可以从8月28日发布的经济模型文档有阐述:

解读Filecoin经济

https://mp.weixin.qq.com/s/m_sHPH-8bSdJoN34BOz7VA


在上面每种情况下,都会从矿工哪里扣除一些资金。你可能会想问,那罚了矿工那么多币,这些币怎么处理呢?目前来说有两种主流的处理方案。

方案一:将所有的罚金全部给举报者

这样依赖举报者的积极性就提高了。但是会遇到了两个相当微妙的问题:

1、攻击者可以用另外一个身份(矿工)举报它自己,这样如果所有的罚金都给举报者,那攻击者作弊的成本就大大降低了,相当于是左手拿到右手,钱还在自己口袋里。

2、如果罚金足够多,可能会导致矿工尝试分叉,以要求自己获得罚金的奖励。这可能会导致链的不稳定,并产生奇怪的诱因。

方案二:销毁所有的罚金

这种方案的优点是简单粗暴。但是这样一来大家举报违规者的动机就太低了,因为目前举报是需要支付交易的 Gas 费用的, 但是如果罚金全部销毁的话,那么举报者得到的唯一奖励就是全网的总币值减少了。这样做完全是损人不利己,得不偿失。

方案一显然不可取,鉴于方案二的缺陷,协议实验室在方案二的基础上做了一些约束:

▲举报者的奖励金额应当足以激励矿工们积极的去举报违规者。

▲举报者的奖励不应高到在竞争矿工之间煽动分叉。

▲销毁的罚金应该高到足以惩罚违规者,即使他们在自己举报自己的情况下。

针对上面的约束,协议实验室会指定一个合理的算法,不过也有很多开发者提供了一些比较可行的建议,比如针对不同类型的罚金处理方案要不一样, 例如对那些误删数据的矿工,他们的罚金应该交给客户,因为客户丢失了数据,得到补偿也无可厚非。


——————————————————
Filecoin惩罚机制

1、扇区故障费:

扇区故障费指的是当扇区处于故障状态时,每天按扇区支付此费用,而且给费用的数额略大于该扇区的预期收入,如果一个扇区连续两个星期以上仍处于故障状态,则该扇区将支付终止费并从链上删除。对于有故障的扇区,此费用的初始价值为2.14天的区块奖励。

2、故障检测费:

扇区故障检测费指的是如果矿工未如实报告故障,而是链上发现了未报告的故障,这是发生故障时支付的一次性费用。费用是特定扇区能够获得的5天区块奖励。

3、扇区终止费:

扇区终止费指的是通过自动故障检测或矿工作出决定在扇区到期之前终止扇区。收取的终止费原则上等于该扇区到目前为止已赚取的收入,但是有一个上限以鼓励承诺时间更长的扇区。在主动终止中,矿工决定违约并停止挖矿,支付终止费而离开。在故障终止中,一个扇区处于故障状态的时间过长(14天),链将终止交易并退还用户剩余订单费用和惩罚矿工支付此费用。目前,每个扇区终止费的上限是该扇区将获得的90天区块奖励。



Filecoin类似于一个公共基础网络,存储矿工通过接入网络,提供存储空间,真正有存储需求的用户,通过网络存储自己重要的数据信息,Filecoin通过其特有的机制设计撮合供需双方。而让用户数据能够安全的存储,让每一个存储矿工都诚实守信的存储用户数据,这就是Filecoin惩罚机制设计的初衷。


Filecoin网络惩罚的形式主要是扣除矿工的代币,而这部分代币主要来自矿工的质押,包括初始质押、区块奖励质押以及存储质押等。以下是几种主要的惩罚方式。



1、共识攻击惩罚


共识攻击又称“连弩攻击”,简单地说,就是在自己有爆块权的时候,不顾共识设计,在同一个区块高度连出多个区块,意图获得多份区块奖励。


当这种情况发生时,任何节点都可以进行举报,并且网络的检测节点也会看到,在网络通过检验并判定后,该矿工节点的所有抵押将被全部没收,所有算力全部清零,永不恢复。同时,此矿工将不能再参与挖矿,即使重新发送抵押至网络。相当于被网络直接拉入黑名单,永不解封,这也是对于所有共识网络来说最严重的一类。


2、迟交时空证明惩罚


时空证明是保证用户数据被安全存储的重要手段,存储矿工需要在存储用户数据期间,不断的向网络提交存储证明。而对于在证明周期内未及时提交的节点,网络会给予一定的惩罚。这里所说的迟交,不是没交,而是提交时间超过了一个证明周期,但仍然在一个生成攻击阈值范围内提交了。


在这种情况下,节点应当知晓自己未在规定的时间内提交证明,此时仍可按照常规提交时空证明(PoSt),但此时要主动附上迟交罚金。


3、未提交时空证明惩罚


如果一个节点不仅没有在一个证明周期内提交证明,而且其延迟的时间超过了生成攻击阈值,这种情况下,就被视为没有提交时空证明。


在这种情况下,任何其他节点都可以报告这种情况,网络通过检查属实后,采取严厉的惩罚措施。目前计划的实现是:罚没所有质押物、算力清零。


4、违背合约惩罚


如果节点未能按照合约在规定的时间内存储用户数据。比如用户要求存储半年,而节点存储3个月就把数据删了。


这种情况下,用户可以马上报告给网络,附上当初签订的合约,在网络确认属实后,将对节点进行处罚。处罚来自节点的承诺质押,同时用户的未支付费用将被返还,节点的相应存储质押将被自然地没收掉。


5、存储错误惩罚


当一个节点所存储的数据出现错误时,会受到一定的惩罚。当该情况发生时,需要节点主动上报丢失(错误)的扇区,操作可以在时空证明中进行,协议中有定义,包含在“Missing Sectors”字段即可。作为一个节点,需要周期性地检测数据,这也是时空证明过程的一部分工作。


网络通过检测节点提供的证明,验证属实会罚没相应的质押FIL,同时清除相对应的算力。


需要注意的是,当一个节点发生磁盘损坏或者数据丢失的情况,该节点可以想办法恢复,并重新提交时空证明,然后重新向网络申明拥有数据和算力,但此前被罚没的FIL将不会退回。此补救措施的一个好处就是其合约用户可能不追究其责任。



总的来说,Filecoin惩罚机制的设计是为了网络的稳定和安全,很大意义上剔除了恶意节点,和保护了用户的权益,对于长远发展来说也是必要的。


————————————————

作为分布式存储行业第一个落地通证,Filecoin普遍被业内看好,具有广阔的前景。Filecoin的使命是为人类信息打造分散的、高效且强大的基础设施,拥有庞大的商业应用和落地预期。

维持存储网络的安全性和稳定性是Filecoin此前多次测试网运行的根本目的。真正的安全稳定是建立在全球节点参与者尽职工作的基础上,但如果节点由于作恶或者疏忽没有做到尽职,也会被施以惩罚。为了保证节点参与者能够提供高质量的数据存储服务,Filecoin通过惩罚机制来制约节点参与者的怠工行为。这也是Filecoin和比特币等币圈前辈们不同的地方。

惩罚如何被触发

在官方发布的Filecoin经济结构问答(FAQ)中,针对“惩罚是如何被触发以及如何实施?”这一问题,官方的回答是:

假设节点参与者正在证明一个扇区:

• 如果扇区处于故障状态,节点参与者需要为处于故障状态的扇区支付毎日扇区故障费。当存储节点参与者的可靠性提高到合理阈值以上时,这些费用带来的风险将迅速降低。

• 如果节点参与者未如实报告故障,而是链上发现了未报告的故障,则节点参与者必须为潜在恶意或不诚实行为支付扇区故障检测费。

• 如果扇区连续处于故障状态的时间过长(14天),扇区就会被终止,节点参与者必须支付扇区终止费(在数天的扇区故障费和潜在的扇区故障检测费之上)。

• 节点参与者也可选择主动终止扇区,但需要支付终止费,如果有存储订单提供者质押品的话,也将被销毁。

请注意:还有基于其他恶意行为但和存储可靠性无关的惩罚。

根据最近官方最新的经济模型,Filecoin 网络中具体惩罚包括:扇区故障费、扇区故障检测费、扇区终止费。

惩罚机制与WindowPoSt

虽然Filecoin官方对《缔造Filecoin经济》中的相关参数进行了调整,但在惩罚机制的设置上依然非常严厉:

• 节点参与者发现扇区故障并主动报告,将被扣除该扇区预期2.14天收益;

• 节点参与者没有发现而在WindowPoSt期间被系统发现扇区故障,则将被处罚该故障扇区3.5天收益作为扇区错误检测费;

• 如果在扇区到期之前终止扇区,则前期该扇区获得的部分区块奖励将被一并扣除(≤140天,没收一半服务时间的收益;>140天,将没收70天的收益)。

Filecoin复制证明中的WindowPoSt,是悬在节点参与者头顶的达摩克利斯之剑,其作用就是检验节点是否按要求持续地存储着相应的数据。

WindowPoSt的周期为一天,分为48个窗口(Window),每个窗口30分钟。节点参与者的扇区越多、体量越大,受挑战的次数和难度也越高。节点参与者必须在规定时间内完成数据验证挑战,任何一次不成功,都将被惩罚并损失算力。

系统稳定性和系统修复能力至关重要

由于Filecoin对网络的稳定性、存储可用性具有超高要求,Filecoin节点参与者时刻肩负着巨大压力:一方面运维要比传统运维难度更大;另一方面,一旦出现异常没有按时完成WindowPoSt,遭受的将是实实在在的资产损失。

节点未能在规定时间内完成WindowPoSt的原因有很多,比如网络传输问题、磁盘损坏和软件Bug等。尤其是磁盘损坏的问题,即使损坏率很小,因为体量的原因依然会产生一定数量硬件设备的损坏,这是不可避免的。如何应对上述这些问题,是对矿商运维能力的极大挑战。

为了保证不被惩罚、算力不被消减,节点参与者不仅需要软件优化、还需要有高标准的运维支持。这些包括但不限于:软件算法优化,缩短WindowPoSt时间;监控系统,实时监测网络传输的稳定性和硬件设备的情况;冗余备份,应对磁盘故障问题,保证数据不会丢失等。

但通过做到这些就能保证100%的系统稳定性吗?当然不行,即便是阿里、腾讯、亚马逊等世界头部的互联网企业也不敢这样保证。

上图是两个在排行榜上名次靠前的节点,从这里不难看出,有的节点错误扇区在全部扇区占比非常小,而有的节点扇区错误高达上万个,占比巨大。如此多的扇区错误,自然导致巨大的算力损失。因此,超快的系统修复能力对于节点来说也显得尤为重要。即使发生了极小概率的突发事件,通过快速修复系统将损失降低至最低,保证单T收益、出块效率以及总体FIL收益最大化,这也是矿商们在主网上线之后的重中之重。

总结

如果说后置质押的规则只是对于节点参与者产出的严格要求,那么针对节点参与者出错和作恶的惩罚甚至可以用“恐怖”来形容。

节点参与者的扇区越多、体量越大,受挑战的次数和难度也越高。

有效存储是一个很大的门槛,对服务器体量、矿场稳定性、代码底层存储方案都有很高的要求,做不到就突破不了,而且会丢失算力。每一个惩罚都像在盯着节点参与者手中的质押币,技术不过关的节点极易在这个阶段就被淘汰。


另外,官方在9月8号更新Filecoin经济模型系数的时候有一条提到:扇区故障费实际偏低,但因考虑网络早期,暂不上调。不难猜测,官方更新此条的用意是:在Filecoin激励模型中本应加大对于扇区故障的惩罚,好让节点参与者注意到这个问题的严重性。然而,现在网络还处在早期,大家对于扇区故障率能维持到怎样一个水平或者说是极限还不好判断,所以暂不上调,但是后期可能将会酌情大幅上调。

从官方严苛的质押和惩罚机制,我们可以看出,Filecoin官方非常重视节点参与者在挖矿过程中的稳定性和安全性,忽视自身的稳定性和安全性,一味地追求算力的行为是不可取的,在后续的挖矿过程中极易被惩罚和淘汰。

尽管经济模型多次变动,但有效存储数据一直是官方强调的重点。从最近官方不断调整的经济系数和各节点表现来看,Filecoin主网上线后,系统出错率低、技术修复快、稳定性强将成为各节点最大的竞争优势。

————————————————

Filecoin优化提案:FIP0002关于矿工惩罚的强烈建议

FIP是针对Filecoin协议的改善提案集,0002号提案就Lotus v0.7.2所使用版本的扇区故障与时空证明失败对矿工惩罚措施做多条建议性参考,参考的采纳需要Filecoin团队与技术社区共同探讨。


为阅读理解更为通畅,请先了解以下信息:
  • WindowPoSt每半小时为一个窗口,一天有48个窗口;同一窗口每天在相同时段都要做WindowPoSt,即周期性执行的任务。

  • 区分为三类,其一称为nonfaulty从未故障的扇区;其二称为DeclareFault矿工声明故障的扇区准备修复但尚未修复;其三称为Skipped扇区:网络检查出来的故障扇区且仍处于故障。

  • 分区的定义:一个分区有2349个扇区,扇区故障会影响整个分区的


问  题



由于扇区故障检测费的规则设计,未及时提交WindowPoSt的矿工将受到网络的过高惩罚。有时诚实的矿工可能会因无法控制的原因,比如网络堵塞没有人及时打包而错过窗口内WindowPoSt提交的最后期限,在相关时间窗口内丢失WindowPoSt或由于单个扇区而使WindowPoSt失败会导致整个分区的2349个扇区全部被罚款。
  
协议应该更加包容这些情况,同时要让矿工保持强烈的动机,在整个服务合同的生命周期中提供可靠的存储。

细则调整



为了使惩罚机制更能包容节点(部分模块)间或的不可控停运,让存储挖矿的体验更加舒适,使Filecoin成为一个对存储提供商更具吸引力的市场,同时兼顾客户对存储可靠性的担忧,FIP0002减少了初次故障的惩罚,同时增加了持续故障的惩罚费用,以抑制矿工提供不可靠存储的动机。
 
在不牺牲很多安全性或存储能力的前提下减少扇区故障检测费,包括:

  • 不会产生费用:如果某一个窗口期内没有查到故障扇区,这个窗口期即使WindowPoSt未按时提交也不会产生任何罚款费用(前提是首次未按时提交)。

  • 产生费用:在某些分区存在故障扇区时,如果窗口期未提交成功WindowPoSt,这些故障扇区会产生扇区故障费。

  • 费用统计区间:在每个窗口期,从检测到故障扇区后的第一个deadline开始,将产生扇区故障费。


分区是扇区的集合,但某些分区内的故障扇区矿工已经主动声明故障,对于正在恢复的扇区和有故障的扇区,希望有以下改善:

  • 对于每个通过时空证明的被恢复扇区:目前恢复矿工算力,但扣除扇区故障费罚款;建议恢复算力的同时不收取任何罚款。

  • 对于每个声明为skipped的扇区:当前设计为删除矿工算力,同时网络将该扇区标记为有故障,扣除矿工的扇区故障检测费(SP)+扇区故障费(FF),该窗口期后开始计算扇区故障费;建议删除矿工算力并标记扇区故障,但不收取任何罚款,该窗口期后开始计算扇区故障费。

  • 对于未提交时空证明的分区:当前版本对所有故障扇区进行扇区故障费的惩罚、惩罚分区中每个扇区的扇区故障检测费,并删除分区中所有扇区的算力;建议改为删除分区中所有扇区的算力、惩罚每个故障和正在恢复故障的扇区的扇区故障费,但不会对从未有过故障的扇区做故障费相关惩罚。


常量调整



网络的设计希望矿工存储数据后在每个时空证明窗口期截止前成功提交WindowPoSt,这是合理的策略。但目前的协议设计导致矿工在单个分区中有很多故障,那么矿工可能更愿意不提交证明,而不是主动声明故障(对于分区内故障扇区大于30%的矿工来说,声明故障成本更高)。
 
为了具有更循序渐进的惩罚结构,官方评估了一个Markov Decision模型,此模型表达了矿工需要为存储合约提供的稳定时长至少要达到60%的存储服务要求时长,只有正常运行时间大于60%时才会产生正的收益期望。基于这一点,扇区故障费常数系数最低需要设置为3.51
 
这样既减少了对新出现故障的扇区的罚款,也增加了对持续故障的罚款,可以有效地降低罚款风险,同时使更改最小化。

总  结



对于FIP0002提到的所有对于诚实矿工更加友善和降低成本的调整细则,让矿工的容错空间拓宽,对于通证的流动量也有一定积极意义。FIP0002一定程度上简化了惩罚机制的颗粒度,但目前提案仍处在未执行阶段,具体的再议空间还有很大,对于经济模型的持续性调整也如预期,最后,实施的快与慢对全体矿工都有节奏性、时间成本的影响,愿技术社区和Filecoin团队为Filecoin生态带来更多的确定性,一起变化与共建。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存